// 导入创建路由实力方法和路由模式方法
import { createRouter, createWebHashHistory } from "vue-router";

// 配置路由数组
const routes = [
    // path 为 触发跳转的路径(路由匹配规则)
    // name 用来给 路由命名
    // 因此建议为每个路由都指定一个唯一的name字段
    // component 用于指定跳转到哪个组件
    {
        // 默认跳转
        path: '/',
        redirect: '/login',
    },
    {
        path: '/login',
        component: () => import('views/Login.vue'),
        meta: { title: '登录' }
    },
    {
        path: '/register',
        component: () => import('views/Register.vue'),
        meta: { title: '注册' }
    },
    {
        path: '/test',
        component: () => import('views/Test.vue'),
        meta: { title: '测试组件' }
    },
    {
        path: '/other',
        component: () => import('views/Other.vue'),

    },
    {
        path: '/doc',
        component: () => import('views/Doc.vue'),

    },
    , {
        // 404路由
        // /:catchAll(.*) 匹配任意路径
        // 当前面所有的路由都匹配失败
        // 就会被当前路由捕获
        path: '/:catchAll(.*)',
        meta: { title: '404' },
        component: () => import('views/404.vue'),
    }
]


// 创建路由实例
// 两个参数 路由模式和路由配置对象
const router = createRouter({
    // 设置路由模式为 hash 模式
    history: createWebHashHistory(),
    // 路由配置对象
    routes
})

// 创建路由守卫
router.beforeEach((to, from, next) => {
    // 读取路由元信息设置标题
    if (to.meta.title) {
        document.title = '问卷矩阵 - ' + to.meta.title;
    } else {
        document.title = '问卷矩阵';
    }
    next();
});


// 导出路由
export default router